package com.dream.wukong.common.core.importexport.csv.config;

import java.util.List;

/**
 * @Author: wuyichao
 * @Description:
 * @Date: Created in 15:35 2018/9/17.
 * @Modified:
 */
public interface CsvConfiguration {

    /**
     * 获取所有配置信息
     * @return
     */
    List<CsvTable> getCsvTables();

    /**
     * 根据key来查找配置信息
     * @param  tableId  ： 配置文件中的ID规则： namespace+id  ； entity实体的ID命名规则：entities.<实体类名>
     * @return
     */
    CsvTable getCsvTable(String tableId);

    /**
     * 根据tableId找到导入列的配置信息
     * @param tableId
     * @return
     */
    List<? extends CsvTable.CsvField> getImportedCsvFields(String tableId);

    /**
     * 根据tableId找到导出列的配置信息
     * @param tableId
     * @return
     */
    List<? extends CsvTable.CsvField> getExportedCsvFields(String tableId);

    /**
     * 放入配置信息
     * @param
     * @param element
     */
    void putCsvTable(String tableId, CsvTable element);

    /**
     * 删除配置信息
     * @param tableId
     */
    void remove(String tableId);

    /**
     * 查找是否包含配置信息
     * @param tableId
     * @return
     */
    boolean containsKey(String tableId);
}
